﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using Microsoft.Data.Caching.AdminApi;

namespace MDCAdminTool
{
    public interface ICacheCommand
    {
        void Start();
        void Stop();
        void Restart();
        void Reload();

        CacheStats LoadStatistics();

        void Add( CacheEntityBase name );
        void Remove( CacheEntityBase name );

        void LoadChildren();

        void LoadConfig();
        void SaveConfig();

        string Name { get; set; }
        CacheType Type { get; set; }
        ServiceStatus Status { get; set; }
    }
    public interface ICacheCommand<TChild> : ICacheCommand
    {
        void Add( TChild name );
        void Remove( TChild name );
        Collection<TChild> Items { get; set; }
    }

    public enum CacheType
    {
        None,
        CacheCluster,
        CacheHost,
        CacheName,
        CacheRegion,
        CacheDataItem
    }
}
